home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / p_man / cat3 / SCSL / dlasda.z / dlasda
Encoding:
Text File  |  2002-10-03  |  9.4 KB  |  265 lines

  1.  
  2.  
  3.  
  4. DDDDLLLLAAAASSSSDDDDAAAA((((3333SSSS))))                                                          DDDDLLLLAAAASSSSDDDDAAAA((((3333SSSS))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      DLASDA - a divide and conquer approach, DLASDA computes the singular
  10.      value decomposition (SVD) of a real upper bidiagonal N-by-M matrix B with
  11.      diagonal D and offdiagonal E, where M = N + SQRE
  12.  
  13. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  14.      SUBROUTINE DLASDA( ICOMPQ, SMLSIZ, N, SQRE, D, E, U, LDU, VT, K, DIFL,
  15.                         DIFR, Z, POLES, GIVPTR, GIVCOL, LDGCOL, PERM, GIVNUM,
  16.                         C, S, WORK, IWORK, INFO )
  17.  
  18.          INTEGER        ICOMPQ, INFO, LDGCOL, LDU, N, SMLSIZ, SQRE
  19.  
  20.          INTEGER        GIVCOL( LDGCOL, * ), GIVPTR( * ), IWORK( * ), K( * ),
  21.                         PERM( LDGCOL, * )
  22.  
  23.          DOUBLE         PRECISION C( * ), D( * ), DIFL( LDU, * ), DIFR( LDU, *
  24.                         ), E( * ), GIVNUM( LDU, * ), POLES( LDU, * ), S( * ),
  25.                         U( LDU, * ), VT( LDU, * ), WORK( * ), Z( LDU, * )
  26.  
  27. IIIIMMMMPPPPLLLLEEEEMMMMEEEENNNNTTTTAAAATTTTIIIIOOOONNNN
  28.      These routines are part of the SCSL Scientific Library and can be loaded
  29.      using either the -lscs or the -lscs_mp option.  The -lscs_mp option
  30.      directs the linker to use the multi-processor version of the library.
  31.  
  32.      When linking to SCSL with -lscs or -lscs_mp, the default integer size is
  33.      4 bytes (32 bits). Another version of SCSL is available in which integers
  34.      are 8 bytes (64 bits).  This version allows the user access to larger
  35.      memory sizes and helps when porting legacy Cray codes.  It can be loaded
  36.      by using the -lscs_i8 option or the -lscs_i8_mp option. A program may use
  37.      only one of the two versions; 4-byte integer and 8-byte integer library
  38.      calls cannot be mixed.
  39.  
  40. PPPPUUUURRRRPPPPOOOOSSSSEEEE
  41.      Using a divide and conquer approach, DLASDA computes the singular value
  42.      decomposition (SVD) of a real upper bidiagonal N-by-M matrix B with
  43.      diagonal D and offdiagonal E, where M = N + SQRE. The algorithm computes
  44.      the singular values in the SVD B = U * S * VT.  The orthogonal matrices U
  45.      and VT are optionally computed in compact form.
  46.  
  47.      A related subroutine, DLASD0, computes the singular values and the
  48.      singular vectors in explicit form.
  49.  
  50.  
  51. AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
  52.      ICOMPQ (input) INTEGER Specifies whether singular vectors are to be
  53.      computed in compact form, as follows = 0: Compute singular values only.
  54.      = 1: Compute singular vectors of upper bidiagonal matrix in compact form.
  55.  
  56.      SMLSIZ (input) INTEGER The maximum size of the subproblems at the bottom
  57.      of the computation tree.
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. DDDDLLLLAAAASSSSDDDDAAAA((((3333SSSS))))                                                          DDDDLLLLAAAASSSSDDDDAAAA((((3333SSSS))))
  71.  
  72.  
  73.  
  74.      N      (input) INTEGER
  75.             The row dimension of the upper bidiagonal matrix. This is also the
  76.             dimension of the main diagonal array D.
  77.  
  78.      SQRE   (input) INTEGER
  79.             Specifies the column dimension of the bidiagonal matrix.  = 0: The
  80.             bidiagonal matrix has column dimension M = N;
  81.             = 1: The bidiagonal matrix has column dimension M = N + 1.
  82.  
  83.      D      (input/output) DOUBLE PRECISION array, dimension ( N )
  84.             On entry D contains the main diagonal of the bidiagonal matrix. On
  85.             exit D, if INFO = 0, contains its singular values.
  86.  
  87.      E      (input) DOUBLE PRECISION array, dimension ( M-1 )
  88.             Contains the subdiagonal entries of the bidiagonal matrix.  On
  89.             exit, E has been destroyed.
  90.  
  91.      U      (output) DOUBLE PRECISION array,
  92.             dimension ( LDU, SMLSIZ ) if ICOMPQ = 1, and not referenced if
  93.             ICOMPQ = 0. If ICOMPQ = 1, on exit, U contains the left singular
  94.             vector matrices of all subproblems at the bottom level.
  95.  
  96.      LDU    (input) INTEGER, LDU = > N.
  97.             The leading dimension of arrays U, VT, DIFL, DIFR, POLES, GIVNUM,
  98.             and Z.
  99.  
  100.      VT     (output) DOUBLE PRECISION array,
  101.             dimension ( LDU, SMLSIZ+1 ) if ICOMPQ = 1, and not referenced if
  102.             ICOMPQ = 0. If ICOMPQ = 1, on exit, VT' contains the right
  103.             singular vector matrices of all subproblems at the bottom level.
  104.  
  105.      K      (output) INTEGER array,
  106.             dimension ( N ) if ICOMPQ = 1 and dimension 1 if ICOMPQ = 0.  If
  107.             ICOMPQ = 1, on exit, K(I) is the dimension of the I-th secular
  108.             equation on the computation tree.
  109.  
  110.      DIFL   (output) DOUBLE PRECISION array, dimension ( LDU, NLVL ),
  111.             where NLVL = floor(log_2 (N/SMLSIZ))).
  112.  
  113.      DIFR   (output) DOUBLE PRECISION array,
  114.             dimension ( LDU, 2 * NLVL ) if ICOMPQ = 1 and dimension ( N ) if
  115.             ICOMPQ = 0.  If ICOMPQ = 1, on exit, DIFL(1:N, I) and DIFR(1:N, 2
  116.             * I - 1) record distances between singular values on the I-th
  117.             level and singular values on the (I -1)-th level, and DIFR(1:N, 2
  118.             * I ) contains the normalizing factors for the right singular
  119.             vector matrix. See DLASD8 for details.
  120.  
  121.      Z      (output) DOUBLE PRECISION array,
  122.             dimension ( LDU, NLVL ) if ICOMPQ = 1 and dimension ( N ) if
  123.             ICOMPQ = 0.  The first K elements of Z(1, I) contain the
  124.             components of the deflation-adjusted updating row vector for
  125.             subproblems on the I-th level.
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. DDDDLLLLAAAASSSSDDDDAAAA((((3333SSSS))))                                                          DDDDLLLLAAAASSSSDDDDAAAA((((3333SSSS))))
  137.  
  138.  
  139.  
  140.      POLES  (output) DOUBLE PRECISION array,
  141.             dimension ( LDU, 2 * NLVL ) if ICOMPQ = 1, and not referenced if
  142.             ICOMPQ = 0. If ICOMPQ = 1, on exit, POLES(1, 2*I - 1) and POLES(1,
  143.             2*I) contain  the new and old singular values involved in the
  144.             secular equations on the I-th level.
  145.  
  146.             GIVPTR (output) INTEGER array, dimension ( N ) if ICOMPQ = 1, and
  147.             not referenced if ICOMPQ = 0. If ICOMPQ = 1, on exit, GIVPTR( I )
  148.             records the number of Givens rotations performed on the I-th
  149.             problem on the computation tree.
  150.  
  151.             GIVCOL (output) INTEGER array, dimension ( LDGCOL, 2 * NLVL ) if
  152.             ICOMPQ = 1, and not referenced if ICOMPQ = 0. If ICOMPQ = 1, on
  153.             exit, for each I, GIVCOL(1, 2 *I - 1) and GIVCOL(1, 2 *I) record
  154.             the locations of Givens rotations performed on the I-th level on
  155.             the computation tree.
  156.  
  157.             LDGCOL (input) INTEGER, LDGCOL = > N.  The leading dimension of
  158.             arrays GIVCOL and PERM.
  159.  
  160.      PERM   (output) INTEGER array,
  161.             dimension ( LDGCOL, NLVL ) if ICOMPQ = 1, and not referenced if
  162.             ICOMPQ = 0. If ICOMPQ = 1, on exit, PERM(1, I) records
  163.             permutations done on the I-th level of the computation tree.
  164.  
  165.             GIVNUM (output) DOUBLE PRECISION array, dimension ( LDU,  2 * NLVL
  166.             ) if ICOMPQ = 1, and not referenced if ICOMPQ = 0. If ICOMPQ = 1,
  167.             on exit, for each I, GIVNUM(1, 2 *I - 1) and GIVNUM(1, 2 *I)
  168.             record the C- and S- values of Givens rotations performed on the
  169.             I-th level on the computation tree.
  170.  
  171.      C      (output) DOUBLE PRECISION array,
  172.             dimension ( N ) if ICOMPQ = 1, and dimension 1 if ICOMPQ = 0.  If
  173.             ICOMPQ = 1 and the I-th subproblem is not square, on exit, C( I )
  174.             contains the C-value of a Givens rotation related to the right
  175.             null space of the I-th subproblem.
  176.  
  177.      S      (output) DOUBLE PRECISION array, dimension ( N ) if
  178.             ICOMPQ = 1, and dimension 1 if ICOMPQ = 0. If ICOMPQ = 1 and the
  179.             I-th subproblem is not square, on exit, S( I ) contains the S-
  180.             value of a Givens rotation related to the right null space of the
  181.             I-th subproblem.
  182.  
  183.      WORK   (workspace) DOUBLE PRECISION array, dimension
  184.             (6 * N + (SMLSIZ + 1)*(SMLSIZ + 1)).
  185.  
  186.      IWORK  (workspace) INTEGER array.
  187.             Dimension must be at least (7 * N).
  188.  
  189.      INFO   (output) INTEGER
  190.             = 0:  successful exit.
  191.             < 0:  if INFO = -i, the i-th argument had an illegal value.
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. DDDDLLLLAAAASSSSDDDDAAAA((((3333SSSS))))                                                          DDDDLLLLAAAASSSSDDDDAAAA((((3333SSSS))))
  203.  
  204.  
  205.  
  206.             > 0:  if INFO = 1, an singular value did not converge
  207.  
  208. FFFFUUUURRRRTTTTHHHHEEEERRRR DDDDEEEETTTTAAAAIIIILLLLSSSS
  209.      Based on contributions by
  210.         Ming Gu and Huan Ren, Computer Science Division, University of
  211.         California at Berkeley, USA
  212.  
  213.  
  214. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  215.      INTRO_LAPACK(3S), INTRO_SCSL(3S)
  216.  
  217.      This man page is available only online.
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.